/*****************************************************************************************
 * FILE NAME: srv_parameter                       COPYRIGHT (c) cos 2024
 * REVISION:  1.0.0                                     All Rights Reserved
 * DESCRIPTION:
 * =======================================================================================
 * UPDATE HISTORY：
 * REV      AUTHOR      DATE
 * v1.0.0   Tuxin       2024.10.14
 * DESCRIPTION OF CHANGE:
 ****************************************************************************************/
#ifndef __SRV_PARAMETER_H
#define __SRV_PARAMETER_H

//----------------------------------------------------------------------------------------
// @Project Includes
#include "typedefs.h"

//----------------------------------------------------------------------------------------
// @Global Macro Define in the module
/******SOC配置值开始******/
#define  PARM_SOC_MAXSOC  				(1000000)/* 充电SOC最高限制 */
#define  PARM_SOC_MINSOC 					(10000)/* 放电SOC最低限制 */
/******SOC配置值结束******/
/******硬件保护配置值开始******/
/*充电过压12*/
#define  PARM_PROTECT_OV          (3750)/* 充电过压1级保护阈值  **/
#define  PARM_PROTECT_OVT         (100)/* 充电过压1级保护延时阈值**/
#define  PARM_PROTECT_OVR         (3650)/* 充电过压1级保护解除阈值**/
#define  PARM_PROTECT_OVRT        (100)/* 充电过压1级保护解除延时阈值**/
/*放电欠压12*/	
#define  PARM_PROTECT_UV          (2000)/* 放电欠压1级保护阈值  **/
#define  PARM_PROTECT_UVT         (100)/* 放电欠压1级保护延时阈值**/
#define  PARM_PROTECT_UVR         (2500)/* 放电欠压1级保护解除阈值**/
#define  PARM_PROTECT_UVRT        (100)/* 放电欠压1级保护解除延时阈值**/

/*充电过流12*/
#define  PARM_PROTECT_OCCV        (1200)/* 充电过流1级保护阈值**/
#define  PARM_PROTECT_OCCT        (100)/* 充电过流1级保护延时阈值**/	
#define  PARM_PROTECT_OCCRV       (0)/* 充电过流1级保护解除阈值**/
#define  PARM_PROTECT_OCCRT       (100)/* 充电过流1级保护解除延时阈值**/	
/*放电过流12*/
#define  PARM_PROTECT_OCDV        (3000)/* 放电过流1级保护阈值**/
#define  PARM_PROTECT_OCDT       	(100)/* 放电过流1级保护延时阈值**/	
#define  PARM_PROTECT_OCDRV       (0)/* 放电过流1级保护解除阈值**/
#define  PARM_PROTECT_OCDRT       (100)/* 放电过流1级保护解除延时阈值**/	
/*短路保护2*/
#define  PARM_PROTECT_SCV         (150)/* 短路过流保护阈值**/
#define  PARM_PROTECT_SCT         (384)/* 短路过流保护延时阈值**/
/*充电高温保护12*/
#define  PARM_PROTECT_OTC         (70)/* 充电高温1级保护阈值**/
#define  PARM_PROTECT_OTCT        (100)/* 充电高温1级保护延时阈值**/	
#define  PARM_PROTECT_OTCR        (65)/* 充电高温1级保护解除阈值**/		
#define  PARM_PROTECT_OTCRT       (100)/* 充电高温1级保护解除延时阈值**/
/*充电低温保护12*/
#define  PARM_PROTECT_UTC         (-5)/* 充电低温1级保护阈值**/
#define  PARM_PROTECT_UTCT        (100)/* 充电低温1级保护延时阈值**/	
#define  PARM_PROTECT_UTCR        (0)/* 充电低温1级保护解除阈值**/		
#define  PARM_PROTECT_UTCRT       (100)	/* 充电低温1级保护解除延时阈值**/
/*放电高温保护12*/
#define  PARM_PROTECT_OTD         (70)/* 放电高温1级保护阈值**/
#define  PARM_PROTECT_OTDT        (100)/* 放电高温1级保护延时阈值**/	
#define  PARM_PROTECT_OTDR        (65)/* 放电高温1级保护解除阈值**/		
#define  PARM_PROTECT_OTDRT       (100)/* 放电高温1级保护解除延时阈值**/
/*放电低温保护12*/
#define  PARM_PROTECT_UTD         (-30)/* 放电低温1级保护阈值**/
#define  PARM_PROTECT_UTDT        (100)/* 放电低温1级保护延时阈值**/	
#define  PARM_PROTECT_UTDR        (-28)/* 放电低温1级保护解除阈值**/		
#define  PARM_PROTECT_UTDRT       (100)/* 放电低温1级保护解除延时阈值**/
/******硬件保护配置值结束******/

/*软件保护参数开始*/
/*总压充电过压12*/
#define  PARM_PROTECT_TOV1        (338*20)/* 总压充电过压1级保护阈值  **/
#define  PARM_PROTECT_TOVT1       (100)/* 总压充电过压1级保护延时阈值**/
#define  PARM_PROTECT_TOVR1       (335*20)/* 总压充电过压1级保护解除阈值**/
#define  PARM_PROTECT_TOVRT1      (100)/* 总压充电过压1级保护解除延时阈值**/
#define  PARM_PROTECT_TOV2        (365*20)/* 总压充电过压2级保护阈值  **/
#define  PARM_PROTECT_TOVT2       (100)/* 总压充电过压2级保护延时阈值**/
#define  PARM_PROTECT_TOVR2       (338*20)/* 总压充电过压2级保护解除阈值**/
#define  PARM_PROTECT_TOVRT2      (100)/* 总压充电过压2级保护解除延时阈值**/
#define  PARM_PROTECT_TOV3        (375*20)/* 总压充电过压3级保护阈值  **/
#define  PARM_PROTECT_TOVT3       (100)/* 总压充电过压3级保护延时阈值**/
#define  PARM_PROTECT_TOVR3       (365*20)/* 总压充电过压3级保护解除阈值**/
#define  PARM_PROTECT_TOVRT3      (100)/* 总压充电过压3级保护解除延时阈值**/	
/*总压放电欠压12*/	
#define  PARM_PROTECT_TUV1        (270*20)/* 总压放电欠压1级保护阈值  **/
#define  PARM_PROTECT_TUVT1       (100)/* 总压放电欠压1级保护延时阈值**/
#define  PARM_PROTECT_TUVR1       (300*20)/* 总压放电欠压1级保护解除阈值**/
#define  PARM_PROTECT_TUVRT1      (100)/* 总压放电欠压1级保护解除延时阈值**/
#define  PARM_PROTECT_TUV2        (250*20)/* 总压放电欠压2级保护阈值  **/
#define  PARM_PROTECT_TUVT2       (100)/* 总压放电欠压2级保护延时阈值**/
#define  PARM_PROTECT_TUVR2       (270*20)/* 总压放电欠压2级保护解除阈值**/
#define  PARM_PROTECT_TUVRT2      (100)/* 总压放电欠压2级保护解除延时阈值**/
#define  PARM_PROTECT_TUV3        (200*20)/* 总压放电欠压3级保护阈值  **/
#define  PARM_PROTECT_TUVT3       (100)/* 总压放电欠压3级保护延时阈值**/
#define  PARM_PROTECT_TUVR3       (250*20)/* 总压放电欠压3级保护解除阈值**/
#define  PARM_PROTECT_TUVRT3      (100)/* 总压放电欠压3级保护解除延时阈值**/	
/*充电过压12*/
#define  PARM_PROTECT_OV1         (3380)/* 充电过压1级保护阈值  **/
#define  PARM_PROTECT_OVT1        (100)/* 充电过压1级保护延时阈值**/
#define  PARM_PROTECT_OVR1        (3350)/* 充电过压1级保护解除阈值**/
#define  PARM_PROTECT_OVRT1       (100)/* 充电过压1级保护解除延时阈值**/
#define  PARM_PROTECT_OV2         (3650)/* 充电过压2级保护阈值  **/
#define  PARM_PROTECT_OVT2        (100)/* 充电过压2级保护延时阈值**/
#define  PARM_PROTECT_OVR2        (3380)/* 充电过压2级保护解除阈值**/
#define  PARM_PROTECT_OVRT2       (100)/* 充电过压2级保护解除延时阈值**/
#define  PARM_PROTECT_OV3         (3650)/* 充电过压3级保护阈值  **/
#define  PARM_PROTECT_OVT3        (100)/* 充电过压3级保护延时阈值**/
#define  PARM_PROTECT_OVR3        (3385)/* 充电过压3级保护解除阈值**/
#define  PARM_PROTECT_OVRT3       (100)/* 充电过压3级保护解除延时阈值**/	
/*放电欠压12*/	
#define  PARM_PROTECT_UV1         (2700)/* 放电欠压1级保护阈值  **/
#define  PARM_PROTECT_UVT1        (100)/* 放电欠压1级保护延时阈值**/
#define  PARM_PROTECT_UVR1        (3000)/* 放电欠压1级保护解除阈值**/
#define  PARM_PROTECT_UVRT1       (100)/* 放电欠压1级保护解除延时阈值**/
#define  PARM_PROTECT_UV2         (2500)	/* 放电欠压2级保护阈值  **/
#define  PARM_PROTECT_UVT2        (100)/* 放电欠压2级保护延时阈值**/
#define  PARM_PROTECT_UVR2        (2700)/* 放电欠压2级保护解除阈值**/
#define  PARM_PROTECT_UVRT2       (100)/* 放电欠压2级保护解除延时阈值**/
#define  PARM_PROTECT_UV3         (2500)/* 放电欠压3级保护阈值  **/
#define  PARM_PROTECT_UVT3        (100)/* 放电欠压3级保护延时阈值**/
#define  PARM_PROTECT_UVR3        (2700)/* 放电欠压3级保护解除阈值**/
#define  PARM_PROTECT_UVRT3       (100)/* 放电欠压3级保护解除延时阈值**/	
/*充电均衡6*/	
#define  PARM_PROTECT_BALOPENV    (3350)/* 均衡开启电压阈值**/
#define  PARM_PROTECT_BALOPEND    (30)/* 均衡开启压差阈值**/
#define  PARM_PROTECT_BALOPENT    (100)/* 均衡开启延时阈值**/
#define  PARM_PROTECT_BALCLOSEV   (3300)/* 均衡关闭电压阈值**/
#define  PARM_PROTECT_BALCLOSED   (10)/* 均衡关闭压差阈值**/
#define  PARM_PROTECT_BALCLOSET   (100)/* 均衡关闭延时阈值**/

/*充电过流12*/
#define  PARM_PROTECT_OCCV1       (300)/* 充电过流1级保护阈值**/
#define  PARM_PROTECT_OCCT1       (100)/* 充电过流1级保护延时阈值**/	
#define  PARM_PROTECT_OCCRV1      (0)/* 充电过流1级保护解除阈值**/
#define  PARM_PROTECT_OCCRT1      (100)/* 充电过流1级保护解除延时阈值**/	
#define  PARM_PROTECT_OCCV2       (8000)/* 充电过流2级保护阈值**/
#define  PARM_PROTECT_OCCT2       (100)/* 充电过流2级保护延时阈值**/	
#define  PARM_PROTECT_OCCRV2      (0)/* 充电过流2级保护解除阈值**/
#define  PARM_PROTECT_OCCRT2      (100)/* 充电过流2级保护解除延时阈值**/		
#define  PARM_PROTECT_OCCV3       (10000)/* 充电过流3级保护阈值**/
#define  PARM_PROTECT_OCCT3       (100)/* 充电过流3级保护延时阈值**/	
#define  PARM_PROTECT_OCCRV3      (0)/* 充电过流3级保护解除阈值**/
#define  PARM_PROTECT_OCCRT3      (100)/* 充电过流3级保护解除延时阈值**/	
/*放电过流12*/
#define  PARM_PROTECT_OCDV1       (300)/* 放电过流1级保护阈值**/
#define  PARM_PROTECT_OCDT1       (100)/* 放电过流1级保护延时阈值**/	
#define  PARM_PROTECT_OCDRV1      (0)/* 放电过流1级保护解除阈值**/
#define  PARM_PROTECT_OCDRT1      (100)/* 放电过流1级保护解除延时阈值**/	
#define  PARM_PROTECT_OCDV2       (8000)/* 放电过流2级保护阈值**/
#define  PARM_PROTECT_OCDT2       (100)/* 放电过流2级保护延时阈值**/	
#define  PARM_PROTECT_OCDRV2      (0)/* 放电过流2级保护解除阈值**/
#define  PARM_PROTECT_OCDRT2      (100)/* 放电过流2级保护解除延时阈值**/		
#define  PARM_PROTECT_OCDV3       (10000)/* 放电过流3级保护阈值**/
#define  PARM_PROTECT_OCDT3       (100)/* 放电过流3级保护延时阈值**/	
#define  PARM_PROTECT_OCDRV3      (0)/* 放电过流3级保护解除阈值**/
#define  PARM_PROTECT_OCDRT3      (100)/* 放电过流3级保护解除延时阈值**/

/*充电高温保护12*/
#define  PARM_PROTECT_OTC1        (55)/* 充电高温1级保护阈值**/
#define  PARM_PROTECT_OTCT1       (100)/* 充电高温1级保护延时阈值**/	
#define  PARM_PROTECT_OTCR1       (50)/* 充电高温1级保护解除阈值**/		
#define  PARM_PROTECT_OTCRT1      (100)/* 充电高温1级保护解除延时阈值**/
#define  PARM_PROTECT_OTC2        (65)/* 充电高温2级保护阈值**/
#define  PARM_PROTECT_OTCT2       (100)/* 充电高温2级保护延时阈值**/	
#define  PARM_PROTECT_OTCR2       (55)/* 充电高温2级保护解除阈值**/		
#define  PARM_PROTECT_OTCRT2      (100)/* 充电高温2级保护解除延时阈值**/	
#define  PARM_PROTECT_OTC3        (70)/* 充电高温3级保护阈值**/
#define  PARM_PROTECT_OTCT3       (100)/* 充电高温3级保护延时阈值**/	
#define  PARM_PROTECT_OTCR3       (65)/* 充电高温3级保护解除阈值**/		
#define  PARM_PROTECT_OTCRT3      (100)/* 充电高温3级保护解除延时阈值**/
/*充电低温保护12*/
#define  PARM_PROTECT_UTC1        (5)/* 充电低温1级保护阈值**/
#define  PARM_PROTECT_UTCT1       (100)/* 充电低温1级保护延时阈值**/	
#define  PARM_PROTECT_UTCR1       (10)/* 充电低温1级保护解除阈值**/		
#define  PARM_PROTECT_UTCRT1      (100)	/* 充电低温1级保护解除延时阈值**/
#define  PARM_PROTECT_UTC2        (0)/* 充电低温2级保护阈值**/
#define  PARM_PROTECT_UTCT2       (100)/* 充电低温2级保护延时阈值**/	
#define  PARM_PROTECT_UTCR2       (5)/* 充电低温2级保护解除阈值**/		
#define  PARM_PROTECT_UTCRT2      (100)/* 充电低温2级保护解除延时阈值**/	
#define  PARM_PROTECT_UTC3        (-5)/* 充电低温3级保护阈值**/
#define  PARM_PROTECT_UTCT3       (100)/* 充电低温3级保护延时阈值**/	
#define  PARM_PROTECT_UTCR3       (0)/* 充电低温3级保护解除阈值**/		
#define  PARM_PROTECT_UTCRT3      (100)	/* 充电低温3级保护解除延时阈值**/
/*放电高温保护12*/
#define  PARM_PROTECT_OTD1        (55)/* 放电高温1级保护阈值**/
#define  PARM_PROTECT_OTDT1       (100)/* 放电高温1级保护延时阈值**/	
#define  PARM_PROTECT_OTDR1       (50)/* 放电高温1级保护解除阈值**/		
#define  PARM_PROTECT_OTDRT1      (100)/* 放电高温1级保护解除延时阈值**/
#define  PARM_PROTECT_OTD2        (65)/* 放电高温2级保护阈值**/
#define  PARM_PROTECT_OTDT2       (100)/* 放电高温2级保护延时阈值**/	
#define  PARM_PROTECT_OTDR2       (55)/* 放电高温2级保护解除阈值**/		
#define  PARM_PROTECT_OTDRT2      (100)/* 放电高温2级保护解除延时阈值**/	
#define  PARM_PROTECT_OTD3        (70)/* 放电高温3级保护阈值**/
#define  PARM_PROTECT_OTDT3       (100)/* 放电高温3级保护延时阈值**/	
#define  PARM_PROTECT_OTDR3       (65)/* 放电高温3级保护解除阈值**/		
#define  PARM_PROTECT_OTDRT3      (100)/* 放电高温3级保护解除延时阈值**/	
/*放电低温保护12*/
#define  PARM_PROTECT_UTD1        (-23)/* 放电低温1级保护阈值**/
#define  PARM_PROTECT_UTDT1       (100)/* 放电低温1级保护延时阈值**/	
#define  PARM_PROTECT_UTDR1       (-20)/* 放电低温1级保护解除阈值**/		
#define  PARM_PROTECT_UTDRT1      (100)/* 放电低温1级保护解除延时阈值**/
#define  PARM_PROTECT_UTD2        (-28)/* 放电低温2级保护阈值**/
#define  PARM_PROTECT_UTDT2       (100)/* 放电低温2级保护延时阈值**/	
#define  PARM_PROTECT_UTDR2       (-23)/* 放电低温2级保护解除阈值**/		
#define  PARM_PROTECT_UTDRT2      (100)	/* 放电低温2级保护解除延时阈值**/	
#define  PARM_PROTECT_UTD3        (-30)/* 放电低温3级保护阈值**/
#define  PARM_PROTECT_UTDT3       (100)/* 放电低温3级保护延时阈值**/	
#define  PARM_PROTECT_UTDR3       (-28)/* 放电低温3级保护解除阈值**/		
#define  PARM_PROTECT_UTDRT3      (100)/* 放电低温3级保护解除延时阈值**/
/*充放电MOS高温保护12*/
#define  PARM_PROTECT_OTCDM1      (60)/* 充放电MOS高温1级保护阈值**/
#define  PARM_PROTECT_OTCDMT1     (100)/* 充放电MOS高温1级保护延时阈值**/	
#define  PARM_PROTECT_OTCDMR1     (50)/* 充放电MOS高温1级保护解除阈值**/		
#define  PARM_PROTECT_OTCDMRT1    (100)/* 充放电MOS高温1级保护解除延时阈值**/
#define  PARM_PROTECT_OTCDM2      (90)/* 充放电MOS高温2级保护阈值**/
#define  PARM_PROTECT_OTCDMT2     (100)/* 充放电MOS高温2级保护延时阈值**/	
#define  PARM_PROTECT_OTCDMR2     (60)/* 充放电MOS高温2级保护解除阈值**/		
#define  PARM_PROTECT_OTCDMRT2    (100)/* 充放电MOS高温2级保护解除延时阈值**/	
#define  PARM_PROTECT_OTCDM3      (100)/* 充放电MOS高温3级保护阈值**/
#define  PARM_PROTECT_OTCDMT3     (100)/* 充放电MOS高温3级保护延时阈值**/	
#define  PARM_PROTECT_OTCDMR3     (90)/* 充放电MOS高温3级保护解除阈值**/		
#define  PARM_PROTECT_OTCDMRT3    (100)/* 充放电MOS高温3级保护解除延时阈值**/
/*充放电MOS低温保护12*/
#define  PARM_PROTECT_UTCDM1      (-35)/* 充放电MOS低温1级保护阈值**/
#define  PARM_PROTECT_UTCDMT1     (100)/* 充放电MOS低温1级保护延时阈值**/	
#define  PARM_PROTECT_UTCDMR1     (-30)/* 充放电MOS低温1级保护解除阈值**/		
#define  PARM_PROTECT_UTCDMRT1    (100)/* 充放电MOS低温1级保护解除延时阈值**/
#define  PARM_PROTECT_UTCDM2      (-40)/* 充放电MOS低温2级保护阈值**/
#define  PARM_PROTECT_UTCDMT2     (100)/* 充放电MOS低温2级保护延时阈值**/	
#define  PARM_PROTECT_UTCDMR2     (-35)/* 充放电MOS低温2级保护解除阈值**/		
#define  PARM_PROTECT_UTCDMRT2    (100)/* 充放电MOS低温2级保护解除延时阈值**/	
#define  PARM_PROTECT_UTCDM3      (-40)/* 充放电MOS低温3级保护阈值**/
#define  PARM_PROTECT_UTCDMT3     (100)/* 充放电MOS低温3级保护延时阈值**/	
#define  PARM_PROTECT_UTCDMR3     (-35)/* 充放电MOS低温3级保护解除阈值**/		
#define  PARM_PROTECT_UTCDMRT3    (100)/* 充放电MOS低温3级保护解除延时阈值**/

/*环境高温保护12*/
#define  PARM_PROTECT_OTAMB1      (60)/* 环境高温1级保护阈值**/
#define  PARM_PROTECT_OTAMBT1     (100)/* 环境高温1级保护延时阈值**/	
#define  PARM_PROTECT_OTAMBR1     (50)/* 环境环境高温1级保护解除阈值**/		
#define  PARM_PROTECT_OTAMBRT1    (100)/* 环境高温1级保护解除延时阈值**/
#define  PARM_PROTECT_OTAMB2      (90)/* 环境高温2级保护阈值**/
#define  PARM_PROTECT_OTAMBT2     (100)/* 环境高温2级保护延时阈值**/	
#define  PARM_PROTECT_OTAMBR2     (60)/* 环境高温2级保护解除阈值**/		
#define  PARM_PROTECT_OTAMBRT2    (100)/* 环境高温2级保护解除延时阈值**/	
#define  PARM_PROTECT_OTAMB3      (100)/* 环境高温3级保护阈值**/
#define  PARM_PROTECT_OTAMBT3     (100)/* 环境高温3级保护延时阈值**/	
#define  PARM_PROTECT_OTAMBR3     (90)/* 环境高温3级保护解除阈值**/		
#define  PARM_PROTECT_OTAMBRT3    (100)/* 环境高温3级保护解除延时阈值**/
/*环境低温保护12*/
#define  PARM_PROTECT_UTAMB1      (-35)/* 环境低温1级保护阈值**/
#define  PARM_PROTECT_UTAMBT1     (100)/*环境低温1级保护延时阈值**/	
#define  PARM_PROTECT_UTAMBR1     (-30)/* 环境低温1级保护解除阈值**/		
#define  PARM_PROTECT_UTAMBRT1    (100)/*环境低温1级保护解除延时阈值**/
#define  PARM_PROTECT_UTAMB2      (-40)/* 环境低温2级保护阈值**/
#define  PARM_PROTECT_UTAMBT2     (100)/*环境低温2级保护延时阈值**/	
#define  PARM_PROTECT_UTAMBR2     (-35)/*环境低温2级保护解除阈值**/		
#define  PARM_PROTECT_UTAMBRT2    (100)/*环境低温2级保护解除延时阈值**/	
#define  PARM_PROTECT_UTAMB3      (-40)/*环境低温3级保护阈值**/
#define  PARM_PROTECT_UTAMBT3     (100)/*环境低温3级保护延时阈值**/	
#define  PARM_PROTECT_UTAMBR3     (-35)/*环境低温3级保护解除阈值**/		
#define  PARM_PROTECT_UTAMBRT3    (100)/*环境低温3级保护解除延时阈值**/

/*压差保护12*/
#define  PARM_PROTECT_DIFFVOL1    (200)/* 压差1级保护阈值**/
#define  PARM_PROTECT_DIFFVOLT1   (100)/* 压差1级保护延时阈值**/	
#define  PARM_PROTECT_DIFFVOLR1   (150)/* 压差1级保护解除阈值**/		
#define  PARM_PROTECT_DIFFVOLRT1  (100)/* 压差1级保护解除延时阈值**/
#define  PARM_PROTECT_DIFFVOL2    (300)/* 压差2级保护阈值**/
#define  PARM_PROTECT_DIFFVOLT2   (100)/* 压差2级保护延时阈值**/	
#define  PARM_PROTECT_DIFFVOLR2   (200)/* 压差2级保护解除阈值**/		
#define  PARM_PROTECT_DIFFVOLRT2  (100)/* 压差2级保护解除延时阈值**/	
#define  PARM_PROTECT_DIFFVOL3    (500)/* 压差3级保护阈值**/
#define  PARM_PROTECT_DIFFVOLT3   (100)/* 压差3级保护延时阈值**/	
#define  PARM_PROTECT_DIFFVOLR3   (300)/* 压差3级保护解除阈值**/		
#define  PARM_PROTECT_DIFFVOLRT3  (100)/* 压差3级保护解除延时阈值**/

/*温差保护12*/
#define  PARM_PROTECT_DIFFTEMP1   (20)/* 温差1级保护阈值**/
#define  PARM_PROTECT_DIFFTEMPT1  (100)/* 温差1级保护延时阈值**/	
#define  PARM_PROTECT_DIFFTEMPR1  (10)/* 温差1级保护解除阈值**/		
#define  PARM_PROTECT_DIFFTEMPRT1 (100)/* 温差1级保护解除延时阈值**/
#define  PARM_PROTECT_DIFFTEMP2   (40)/* 温差2级保护阈值**/
#define  PARM_PROTECT_DIFFTEMPT2  (100)/* 温差2级保护延时阈值**/	
#define  PARM_PROTECT_DIFFTEMPR2  (20)/* 温差2级保护解除阈值**/		
#define  PARM_PROTECT_DIFFTEMPRT2 (100)/* 温差2级保护解除延时阈值**/	
#define  PARM_PROTECT_DIFFTEMP3   (60)/* 温差3级保护阈值**/
#define  PARM_PROTECT_DIFFTEMPT3  (100)/* 温差3级保护延时阈值**/	
#define  PARM_PROTECT_DIFFTEMPR3  (40)/* 温差3级保护解除阈值**/		
#define  PARM_PROTECT_DIFFTEMPRT3 (100)/* 温差3级保护解除延时阈值**/

/*SOC低保护12*/
#define  PARM_PROTECT_SOCLOW1     (10)/* SOC低1级保护阈值**/
#define  PARM_PROTECT_SOCLOWT1    (100)/* SOC低1级保护延时阈值**/	
#define  PARM_PROTECT_SOCLOWR1    (20)/* SOC低1级保护解除阈值**/		
#define  PARM_PROTECT_SOCLOWRT1   (100)/* SOC低1级保护解除延时阈值**/
#define  PARM_PROTECT_SOCLOW2     (5)/* SOC低2级保护阈值**/
#define  PARM_PROTECT_SOCLOWT2    (100)/* SOC低2级保护延时阈值**/	
#define  PARM_PROTECT_SOCLOWR2    (10)/* SOC低2级保护解除阈值**/		
#define  PARM_PROTECT_SOCLOWRT2   (100)/* SOC低2级保护解除延时阈值**/	
#define  PARM_PROTECT_SOCLOW3     (0)/* SOC低3级保护阈值**/
#define  PARM_PROTECT_SOCLOWT3    (100)/* SOC低3级保护延时阈值**/	
#define  PARM_PROTECT_SOCLOWR3    (5)/* SOC低3级保护解除阈值**/		
#define  PARM_PROTECT_SOCLOWRT3   (100)/* SOC低3级保护解除延时阈值**/

/*标准保护参数结束*/

/*出厂校准参数开始*/
/*温度校准参数寄存器默认值*/
#define  PARM_CAL_TEMP         		(0)
/*电压校准参数寄存器默认值*/
#define  PARM_CAL_VOLTAGE      		(0)
/*出厂校准参数结束*/

/*BMS系统相关参数开始*/
#define  PARM_CONFIG_S_CUR_SW			(1)/*小电流信号开关 0x00 关闭，0x01 开启 *开启*/
#define  PARM_CONFIG_S_CUR_THR		(200)/*放电最小电流阈值*100*/
#define  PARM_CONFIG_S_CUR_TIME		(15) /*无电流关机时间 *30S*/

#define  PARM_CONFIG_CAPACITYVALUE  (24*1000)/*设计容量值30表示30AH**/

#define  PARM_CONFIG_RECHARGECYCLES (0)/*充电次数*/
#define  PARM_CONFIG_PRECHARGEVOL   (2200)/*预充开启电压，和AFE硬件相关*/

#define AFE_SH367309_TYPE       	(0)
#define AFE_SH367306_TYPE       	(1)
#define AFE_SH3673520_TYPE       	(2)
#define AFE_DVC1124_TYPE       		(3)
#define AFE_DVC1117_TYPE       		(4)
#define AFE_KP62030_TYPE       		(5)

#define  PARM_CONFIG_AFETYPE			(AFE_SH3673520_TYPE)/*AFE类型 */
#define  PARM_CONFIG_INVTYPE      (0)/*INV类型 */

#define TERNARY_MATERIAL_BATTERY_TYPE       (0)/* 三元材料电池 */
#define LFP_BATTERY_TYPE                   	(1)/* 磷酸铁锂电池 */
#define LEAD_ACID_BATTERY_TYPE             	(2)/* 铅酸电池 */
#define NI_MH_BATTERY_TYPE                  (3)/* 镍氢电池 */
#define LITHIUM_MANGANESE_BATTERY_TYPE      (4)/* 锰酸锂电池 */
#define LITHIUM_COBALT_ACID_BATTERY_TYPE    (5)/* 钴酸锂电池 */
#define POLYMER_LITHIUM_BATTERY_TYPE        (6)/* 聚合物锂离子电池 */
#define LITHIUM_TITANATE_BATTERY_TYPE       (7)/* 钛酸锂电池 */
#define SODIUM_ION_BATTERY_TYPE       			(8)/* 钠离子电池 */

#define  PARM_CONFIG_BATTERYTYPE	 (LFP_BATTERY_TYPE)

#define  PARM_CONFIG_CELLNUMS			 (20)/*电池串数*16*/
#define  PARM_CONFIG_CELLNUMP			 (1)/*电池并数*7*/

#define  PARM_CONFIG_SW_PROTECT_EN (1)/*软件保护使能 0 失能，1 使能*/
#define  PARM_CONFIG_CAP_AUTOLEARN (0)/*容量自学习 0 未学习，1学习中*/

#define  PARM_CONFIG_SAMPLING_RESISTOR  (111)/*精度为0.001mΩ*/
#define  PARM_CONFIG_CURR_RATCHG 			  (1000)/*充电倍率为 精度为0.001*/
#define  PARM_CONFIG_CURR_RATDIS 			  (1000)/*放电倍率为 精度为0.001*/
#define  PARM_CONFIG_CURR_ZEROOFFSETVAL (0)/*零票电流值 精度为1mA*/

#define  PARM_CONFIG_DEVSN     			"CBMS-0324-000000000"/*序列号*/
#define  PARM_CONFIG_FACTORYSN     	"CBMS-0324-111111111"
#define  PARM_CONFIG_PROJECTSN     	"CBMS-xxx-0328800387"
#define  PARM_CONFIG_BATTERYSN     	"CBMS-0324-333333333"
#define  PARM_CONFIG_ICCIDSN     		"CBMS-0324-444444444"
#define  PARM_CONFIG_IMEISN     		"CBMS-0324-555555555"
#define  PARM_CONFIG_PASSWORDSN     "CBMS-0324-666666666"

#define  PARM_CONFIG_CHGCAB_TYPE   (0)/*充电柜类型 */
#define  PARM_CONFIG_COMMU_ADDR    (0x01)/*通讯地址 */
#define  PARM_CONFIG_FORBIDCHGVOL  (3750)/*禁止充电电压*/
#define  PARM_CONFIG_MAXCHGCUR  	 (1000)/*最大允许充电电流*/
#define  PARM_CONFIG_FORBIDBALHIGHTTEMPTHR  (65)/*禁止均衡高温阈值*/
#define  PARM_CONFIG_FORBIDBALLOWTEMPTHR  	(-20)/*禁止均衡低温阈值*/
#define  PARM_CONFIG_FULLCHGVOL  	 (3600)/*满充保护电压*/
#define  PARM_CONFIG_FULLCHGCUR 	 (200)/*满充截至电流*/			
#define  PARM_CONFIG_FULLCHGDURATION 	(60)/*满充持续时间*/	
#define  PARM_CONFIG_MODFUNC 			 (0x00000006)/*模块功能配置*/

#define  RANKFUNC_OV               (0)
#define  RANKFUNC_UV               (1)
#define  RANKFUNC_OCC              (2)
#define  RANKFUNC_OCD              (3)
#define  RANKFUNC_SCV              (4)
#define  RANKFUNC_OTC              (5)
#define  RANKFUNC_UTC              (6)
#define  RANKFUNC_OTD              (7)
#define  RANKFUNC_UTD              (8)
#define  RANKFUNC_OTM              (9)
#define  RANKFUNC_UTM              (10)
#define  RANKFUNC_OTA              (11)
#define  RANKFUNC_UTA        	     (12)
#define  RANKFUNC_DIFV             (13)
#define  RANKFUNC_TOV              (14)
#define  RANKFUNC_TUV              (15)
#define  RANKFUNC_DIFT             (16)
#define  RANKFUNC_SOCLOW           (17)
#define  RANKFUNC_FULL	      		 (18)
#define  RANKFUNC_INS	      			 (19)

#define  PARM_CONFIG_RANK2FUNC 		 (0x0004DFFF)/*保护功能开关*/
#define  PARM_CONFIG_RANK1FUNC 		 (0x000FFFEF)/*预警功能开关*/

#define  PARM_CONFIG_DISPSOC 		   (500)/*显示SOC*/
#define  PARM_CONFIG_TRUESOC 		   (500)/*真实SOC*/
#define  PARM_CONFIG_SOCINTERVAL 	 (3600)/*SOC修正间隔*/
#define  PARM_CONFIG_SOH 	 				 (100)/*SOH*/
#define  PARM_CONFIG_DESIGNVOL	 	 (584)/*电池包标称电压 */
#define  PARM_CONFIG_REMAINCAP	 	 (0x00000000)/*电池包剩余容量,单位mAH */
#define  PARM_CONFIG_ACCCHGCAP	 	 (0x00000000)/*电池包累积充电容量,单位mAH */
#define  PARM_CONFIG_ACCDSGCAP	 	 (0x00000000)/*电池包累积放电容量,单位mAH  */

/*BMS系统相关参数结束*/

#define PARM_CONFIG_SAVE_TAIL      (0x11223344)

#define PARM_WRITE_MAX_WAIT_TIME	 (30u)/*最大写参数等待时间 10ms单位*/
//----------------------------------------------------------------------------------------
// @Global Type defines in the module



/*SOC参数结构体*/
typedef struct stc_soc_parm
{
    uint32_t u32maxLimitSOC;/* 充电SOC最高限制 */
    uint32_t u32minLimitSOC;/* 放电SOC最低限制 */
} stc_soc_parm_t;


/*软件保护参数结构体*/
typedef struct stc_sw_protect_parm
{
    /*总压充电过压12*/
    uint16_t u16tov1;/* 总压充电过压1级保护阈值  **/
    uint16_t u16tovt1;/* 总压充电过压1级保护延时阈值**/
    uint16_t u16tovr1;/* 总压充电过压1级保护解除阈值**/
    uint16_t u16tovrt1;/* 总压充电过压1级保护解除延时阈值**/
    uint16_t u16tov2;/* 总压充电过压2级保护阈值  **/
    uint16_t u16tovt2;/* 总压充电过压2级保护延时阈值**/
    uint16_t u16tovr2;/* 总压充电过压2级保护解除阈值**/
    uint16_t u16tovrt2;/* 总压充电过压2级保护解除延时阈值**/
    uint16_t u16tov3;/* 总压充电过压3级保护阈值  **/
    uint16_t u16tovt3;/* 总压充电过压3级保护延时阈值**/
    uint16_t u16tovr3;/* 总压充电过压3级保护解除阈值**/
    uint16_t u16tovrt3;/* 总压充电过压3级保护解除延时阈值**/
    /*总压放电欠压12*/	
    uint16_t u16tuv1;/* 总压放电欠压1级保护阈值  **/
    uint16_t u16tuvt1;/* 总压放电欠压1级保护延时阈值**/
    uint16_t u16tuvr1;/* 总压放电欠压1级保护解除阈值**/
    uint16_t u16tuvrt1;/* 总压放电欠压1级保护解除延时阈值**/
    uint16_t u16tuv2;/* 总压放电欠压2级保护阈值  **/
    uint16_t u16tuvt2;/* 总压放电欠压2级保护延时阈值**/
    uint16_t u16tuvr2;/* 总压放电欠压2级保护解除阈值**/
    uint16_t u16tuvrt2;/* 总压放电欠压2级保护解除延时阈值**/
    uint16_t u16tuv3;/* 总压放电欠压3级保护阈值  **/
    uint16_t u16tuvt3;/* 总压放电欠压3级保护延时阈值**/
    uint16_t u16tuvr3;/* 总压放电欠压3级保护解除阈值**/
    uint16_t u16tuvrt3;/* 总压放电欠压3级保护解除延时阈值**/	
	
    /*充电过压12*/
    uint16_t u16ov1;/* 充电过压1级保护阈值  **/
    uint16_t u16ovt1;/* 充电过压1级保护延时阈值**/
    uint16_t u16ovr1;/* 充电过压1级保护解除阈值**/
    uint16_t u16ovrt1;/* 充电过压1级保护解除延时阈值**/
    uint16_t u16ov2;/* 充电过压2级保护阈值  **/
    uint16_t u16ovt2;/* 充电过压2级保护延时阈值**/
    uint16_t u16ovr2;/* 充电过压2级保护解除阈值**/
    uint16_t u16ovrt2;/* 充电过压2级保护解除延时阈值**/
    uint16_t u16ov3;/* 充电过压3级保护阈值  **/
    uint16_t u16ovt3;/* 充电过压3级保护延时阈值**/
    uint16_t u16ovr3;/* 充电过压3级保护解除阈值**/
    uint16_t u16ovrt3;/* 充电过压3级保护解除延时阈值**/
    /*放电欠压12*/	
    uint16_t u16uv1;/* 放电欠压1级保护阈值  **/
    uint16_t u16uvt1;/* 放电欠压1级保护延时阈值**/
    uint16_t u16uvr1;/* 放电欠压1级保护解除阈值**/
    uint16_t u16uvrt1;/* 放电欠压1级保护解除延时阈值**/
    uint16_t u16uv2;/* 放电欠压2级保护阈值  **/
    uint16_t u16uvt2;/* 放电欠压2级保护延时阈值**/
    uint16_t u16uvr2;/* 放电欠压2级保护解除阈值**/
    uint16_t u16uvrt2;/* 放电欠压2级保护解除延时阈值**/
    uint16_t u16uv3;/* 放电欠压3级保护阈值  **/
    uint16_t u16uvt3;/* 放电欠压3级保护延时阈值**/
    uint16_t u16uvr3;/* 放电欠压3级保护解除阈值**/
    uint16_t u16uvrt3;/* 放电欠压3级保护解除延时阈值**/
    /*充电均衡6*/	
    uint16_t u16balOpenV;/* 均衡开启电压阈值**/
    uint16_t u16balOpenD;/* 均衡开启压差阈值**/
    uint16_t u16balOpenT;/* 均衡开启延时阈值**/
    uint16_t u16balCloseV;/* 均衡开启电压阈值**/
    uint16_t u16balCloseD;/* 均衡开启压差阈值**/
    uint16_t u16balCloseT;/* 均衡开启延时阈值**/		
    /*充电过流12*/
    uint16_t u16occv1;/* 充电过流1级保护阈值**/
    uint16_t u16occt1;/* 充电过流1级保护延时阈值**/	
    uint16_t u16occrv1;/* 充电过流1级保护解除阈值**/
    uint16_t u16occrt1;/* 充电过流1级保护解除延时阈值**/	
    uint16_t u16occv2;/* 充电过流2级保护阈值**/
    uint16_t u16occt2;/* 充电过流2级保护延时阈值**/	
    uint16_t u16occrv2;/* 充电过流2级保护解除阈值**/
    uint16_t u16occrt2;/* 充电过流2级保护解除延时阈值**/		
    uint16_t u16occv3;/* 充电过流3级保护阈值**/
    uint16_t u16occt3;/* 充电过流3级保护延时阈值**/	
    uint16_t u16occrv3;/* 充电过流3级保护解除阈值**/
    uint16_t u16occrt3;/* 充电过流3级保护解除延时阈值**/	
		
    /*放电过流12*/
    uint16_t u16ocdv1;/* 放电过流1级保护阈值**/
    uint16_t u16ocdt1;/* 放电过流1级保护延时阈值**/	
    uint16_t u16ocdrv1;/* 放电过流1级保护解除阈值**/
    uint16_t u16ocdrt1;/* 放电过流1级保护解除延时阈值**/	
    uint16_t u16ocdv2;/* 放电过流2级保护阈值**/
    uint16_t u16ocdt2;/* 放电过流2级保护延时阈值**/	
    uint16_t u16ocdrv2;/* 放电过流2级保护解除阈值**/
    uint16_t u16ocdrt2;/* 放电过流2级保护解除延时阈值**/		
    uint16_t u16ocdv3;/* 放电过流3级保护阈值**/
    uint16_t u16ocdt3;/* 放电过流3级保护延时阈值**/	
    uint16_t u16ocdrv3;/* 放电过流3级保护解除阈值**/
    uint16_t u16ocdrt3;/* 放电过流3级保护解除延时阈值**/

    /*充电高温保护12*/
    int16_t i16otc1;/* 充电高温1级保护阈值**/
    uint16_t u16otct1;/* 充电高温1级保护延时阈值**/	
    int16_t i16otcr1;/* 充电高温1级保护解除阈值**/		
    uint16_t u16otcrt1;/* 充电高温1级保护解除延时阈值**/
    int16_t i16otc2;/* 充电高温2级保护阈值**/
    uint16_t u16otct2;/* 充电高温2级保护延时阈值**/	
    int16_t i16otcr2;/* 充电高温2级保护解除阈值**/		
    uint16_t u16otcrt2;/* 充电高温2级保护解除延时阈值**/	
    int16_t i16otc3;/* 充电高温3级保护阈值**/
    uint16_t u16otct3;/* 充电高温3级保护延时阈值**/	
    int16_t i16otcr3;/* 充电高温3级保护解除阈值**/		
    uint16_t u16otcrt3;/* 充电高温3级保护解除延时阈值**/
    /*充电低温保护12*/
    int16_t i16utc1;/* 充电低温1级保护阈值**/
    uint16_t u16utct1;/* 充电低温1级保护延时阈值**/	
    int16_t i16utcr1;/* 充电低温1级保护解除阈值**/		
    uint16_t u16utcrt1;/* 充电低温1级保护解除延时阈值**/
    int16_t i16utc2;/* 充电低温2级保护阈值**/
    uint16_t u16utct2;/* 充电低温2级保护延时阈值**/	
    int16_t i16utcr2;/* 充电低温2级保护解除阈值**/		
    uint16_t u16utcrt2;/* 充电低温2级保护解除延时阈值**/	
    int16_t i16utc3;/* 充电低温3级保护阈值**/
    uint16_t u16utct3;/* 充电低温3级保护延时阈值**/	
    int16_t i16utcr3;/* 充电低温3级保护解除阈值**/		
    uint16_t u16utcrt3;/* 充电低温3级保护解除延时阈值**/
    /*放电高温保护12*/
    int16_t i16otd1;/* 放电高温1级保护阈值**/
    uint16_t u16otdt1;/* 放电高温1级保护延时阈值**/	
    int16_t i16otdr1;/* 放电高温1级保护解除阈值**/		
    uint16_t u16otdrt1;/* 放电高温1级保护解除延时阈值**/
    int16_t i16otd2;/* 放电高温2级保护阈值**/
    uint16_t u16otdt2;/* 放电高温2级保护延时阈值**/	
    int16_t i16otdr2;/* 放电高温2级保护解除阈值**/		
    uint16_t u16otdrt2;/* 放电高温2级保护解除延时阈值**/	
    int16_t i16otd3;/* 放电高温3级保护阈值**/
    uint16_t u16otdt3;/* 放电高温3级保护延时阈值**/	
    int16_t i16otdr3;/* 放电高温3级保护解除阈值**/		
    uint16_t u16otdrt3;/* 放电高温3级保护解除延时阈值**/
    /*放电低温保护12*/
    int16_t i16utd1;/* 放电低温1级保护阈值**/
    uint16_t u16utdt1;/* 放电低温1级保护延时阈值**/	
    int16_t i16utdr1;/* 放电低温1级保护解除阈值**/		
    uint16_t u16utdrt1;/* 放电低温1级保护解除延时阈值**/
    int16_t i16utd2;/* 放电低温2级保护阈值**/
    uint16_t u16utdt2;/* 放电低温2级保护延时阈值**/	
    int16_t i16utdr2;/* 放电低温2级保护解除阈值**/		
    uint16_t u16utdrt2;/* 放电低温2级保护解除延时阈值**/	
    int16_t i16utd3;/* 放电低温3级保护阈值**/
    uint16_t u16utdt3;/* 放电低温3级保护延时阈值**/	
    int16_t i16utdr3;/* 放电低温3级保护解除阈值**/		
    uint16_t u16utdrt3;/* 放电低温3级保护解除延时阈值**/
    /*充放电MOS高温保护12*/
    int16_t i16otcdm1;/* 充放电MOS高温1级保护阈值**/
    uint16_t u16otcdmt1;/* 充放电MOS高温1级保护延时阈值**/	
    int16_t i16otcdmr1;/* 充放电MOS高温1级保护解除阈值**/		
    uint16_t u16otcdmrt1;/* 充放电MOS高温1级保护解除延时阈值**/
    int16_t i16otcdm2;/* 充放电MOS高温2级保护阈值**/
    uint16_t u16otcdmt2;/* 充放电MOS高温2级保护延时阈值**/	
    int16_t i16otcdmr2;/* 充放电MOS高温2级保护解除阈值**/		
    uint16_t u16otcdmrt2;/* 充放电MOS高温2级保护解除延时阈值**/	
    int16_t i16otcdm3;/* 充放电MOS高温3级保护阈值**/
    uint16_t u16otcdmt3;/* 充放电MOS高温3级保护延时阈值**/	
    int16_t i16otcdmr3;/* 充放电MOS高温3级保护解除阈值**/		
    uint16_t u16otcdmrt3;/* 充放电MOS高温3级保护解除延时阈值**/
    /*充放电MOS低温保护12*/
    int16_t i16utcdm1;/* 充放电MOS低温1级保护阈值**/
    uint16_t u16utcdmt1;/* 充放电MOS低温1级保护延时阈值**/	
    int16_t i16utcdmr1;/* 充放电MOS低温1级保护解除阈值**/		
    uint16_t u16utcdmrt1;/* 充放电MOS低温1级保护解除延时阈值**/
    int16_t i16utcdm2;/* 充放电MOS高低2级保护阈值**/
    uint16_t u16utcdmt2;/* 充放电MOS低温2级保护延时阈值**/	
    int16_t i16utcdmr2;/* 充放电MOS低温2级保护解除阈值**/		
    uint16_t u16utcdmrt2;/* 充放电MOS低温2级保护解除延时阈值**/	
    int16_t i16utcdm3;/* 充放电MOS低温3级保护阈值**/
    uint16_t u16utcdmt3;/* 充放电MOS低温3级保护延时阈值**/	
    int16_t i16utcdmr3;/* 充放电MOS低温3级保护解除阈值**/		
    uint16_t u16utcdmrt3;/* 充放电MOS低温3级保护解除延时阈值**/	
    /*环境高温保护12*/
    int16_t i16otamb1;/* 环境高温1级保护阈值**/
    uint16_t u16otambt1;/* 环境高温1级保护延时阈值**/	
    int16_t i16otambr1;/* 环境高温1级保护解除阈值**/		
    uint16_t u16otambrt1;/* 环境高温1级保护解除延时阈值**/
    int16_t i16otamb2;/* 环境高温2级保护阈值**/
    uint16_t u16otambt2;/* 环境高温2级保护延时阈值**/	
    int16_t i16otambr2;/* 环境高温2级保护解除阈值**/		
    uint16_t u16otambrt2;/* 环境高温2级保护解除延时阈值**/	
    int16_t i16otamb3;/* 环境高温3级保护阈值**/
    uint16_t u16otambt3;/* 环境高温3级保护延时阈值**/	
    int16_t i16otambr3;/* 环境高温3级保护解除阈值**/		
    uint16_t u16otambrt3;/* 环境高温3级保护解除延时阈值**/
    /*充放电MOS低温保护12*/
    int16_t i16utamb1;/* 环境低温1级保护阈值**/
    uint16_t u16utambt1;/* 环境低温1级保护延时阈值**/	
    int16_t i16utambr1;/* 环境低温1级保护解除阈值**/		
    uint16_t u16utambrt1;/* 环境低温1级保护解除延时阈值**/
    int16_t i16utamb2;/* 环境低温2级保护阈值**/
    uint16_t u16utambt2;/* 环境低温2级保护延时阈值**/	
    int16_t i16utambr2;/* 环境低温2级保护解除阈值**/		
    uint16_t u16utambrt2;/* 环境低温2级保护解除延时阈值**/	
    int16_t i16utamb3;/* 环境低温3级保护阈值**/
    uint16_t u16utambt3;/* 环境低温3级保护延时阈值**/	
    int16_t i16utambr3;/* 环境低温3级保护解除阈值**/		
    uint16_t u16utambrt3;/* 环境低温3级保护解除延时阈值**/			
    /*压差保护12*/
    uint16_t u16diffvol1;/* 压差1级保护阈值**/
    uint16_t u16diffvolt1;/* 压差1级保护延时阈值**/	
    uint16_t u16diffvolr1;/* 压差1级保护解除阈值**/		
    uint16_t u16diffvolrt1;/* 压差1级保护解除延时阈值**/
    uint16_t u16diffvol2;/* 压差2级保护阈值**/
    uint16_t u16diffvolt2;/* 压差2级保护延时阈值**/	
    uint16_t u16diffvolr2;/* 压差2级保护解除阈值**/		
    uint16_t u16diffvolrt2;/* 压差2级保护解除延时阈值**/	
    uint16_t u16diffvol3;/* 压差3级保护阈值**/
    uint16_t u16diffvolt3;/* 压差3级保护延时阈值**/	
    uint16_t u16diffvolr3;/* 压差3级保护解除阈值**/		
    uint16_t u16diffvolrt3;/* 压差3级保护解除延时阈值**/
		
    /*温差保护12*/
    uint16_t u16difftemp1;/* 温差1级保护阈值**/
    uint16_t u16difftempt1;/* 温差1级保护延时阈值**/	
    uint16_t u16difftempr1;/* 温差1级保护解除阈值**/		
    uint16_t u16difftemprt1;/* 温差1级保护解除延时阈值**/
    uint16_t u16difftemp2;/* 温差2级保护阈值**/
    uint16_t u16difftempt2;/* 温差2级保护延时阈值**/	
    uint16_t u16difftempr2;/* 温差2级保护解除阈值**/		
    uint16_t u16difftemprt2;/* 温差2级保护解除延时阈值**/	
    uint16_t u16difftemp3;/* 温差3级保护阈值**/
    uint16_t u16difftempt3;/* 温差3级保护延时阈值**/	
    uint16_t u16difftempr3;/* 温差3级保护解除阈值**/		
    uint16_t u16difftemprt3;/* 温差3级保护解除延时阈值**/		
		
    /*SOC低保护12*/
    uint16_t u16soclow1;/* SOC1级保护阈值**/
    uint16_t u16soclowt1;/* SOC1级保护延时阈值**/	
    uint16_t u16soclowr1;/* SOC1级保护解除阈值**/		
    uint16_t u16soclowrt1;/* SOC1级保护解除延时阈值**/
    uint16_t u16soclow2;/* SOC2级保护阈值**/
    uint16_t u16soclowt2;/* SOC2级保护延时阈值**/	
    uint16_t u16soclowr2;/* SOC2级保护解除阈值**/		
    uint16_t u16soclowrt2;/* SOC2级保护解除延时阈值**/	
    uint16_t u16soclow3;/* SOC3级保护阈值**/
    uint16_t u16soclowt3;/* SOC3级保护延时阈值**/	
    uint16_t u16soclowr3;/* SOC3级保护解除阈值**/		
    uint16_t u16soclowrt3;/* SOC3级保护解除延时阈值**/				
		
} stc_sw_protect_parm_t;

/*硬件保护参数结构体*/
typedef struct stc_hw_protect_parm
{
    /*充电过压12*/
    uint16_t u16ov;/* 充电过压1级保护阈值  **/
    uint16_t u16ovt;/* 充电过压1级保护延时阈值**/
    uint16_t u16ovr;/* 充电过压1级保护解除阈值**/
    uint16_t u16ovrt;/* 充电过压1级保护解除延时阈值**/
    /*放电欠压12*/	
    uint16_t u16uv;/* 放电欠压1级保护阈值  **/
    uint16_t u16uvt;/* 放电欠压1级保护延时阈值**/
    uint16_t u16uvr;/* 放电欠压1级保护解除阈值**/
    uint16_t u16uvrt;/* 放电欠压1级保护解除延时阈值**/
    /*充电过流12*/
    uint16_t u16occv;/* 充电过流1级保护阈值**/
    uint16_t u16occt;/* 充电过流1级保护延时阈值**/	
    uint16_t u16occrv;/* 充电过流1级保护解除阈值**/
    uint16_t u16occrt;/* 充电过流1级保护解除延时阈值**/	
    /*放电过流12*/
    uint16_t u16ocdv;/* 放电过流1级保护阈值**/
    uint16_t u16ocdt;/* 放电过流1级保护延时阈值**/	
    uint16_t u16ocdrv;/* 放电过流1级保护解除阈值**/
    uint16_t u16ocdrt;/* 放电过流1级保护解除延时阈值**/	
    /*短路保护2*/
    uint16_t u16scv;/* 短路过流保护阈值**/
    uint16_t u16sct;/* 短路过流保护延时阈值**/
    /*充电高温保护12*/
    int16_t i16otc;/* 充电高温1级保护阈值**/
    uint16_t u16otct;/* 充电高温1级保护延时阈值**/	
    int16_t i16otcr;/* 充电高温1级保护解除阈值**/		
    uint16_t u16otcrt;/* 充电高温1级保护解除延时阈值**/
    /*充电低温保护12*/
    int16_t i16utc;/* 充电低温1级保护阈值**/
    uint16_t u16utct;/* 充电低温1级保护延时阈值**/	
    int16_t i16utcr;/* 充电低温1级保护解除阈值**/		
    uint16_t u16utcrt;/* 充电低温1级保护解除延时阈值**/
    /*放电高温保护12*/
    int16_t i16otd;/* 放电高温1级保护阈值**/
    uint16_t u16otdt;/* 放电高温1级保护延时阈值**/	
    int16_t i16otdr;/* 放电高温1级保护解除阈值**/		
    uint16_t u16otdrt;/* 放电高温1级保护解除延时阈值**/
    /*放电低温保护12*/
    int16_t i16utd;/* 放电低温1级保护阈值**/
    uint16_t u16utdt;/* 放电低温1级保护延时阈值**/	
    int16_t i16utdr;/* 放电低温1级保护解除阈值**/		
    uint16_t u16utdrt;/* 放电低温1级保护解除延时阈值**/		
		
} stc_hw_protect_parm_t;

/*硬件校准参数结构体*/
typedef struct stc_cal_parm
{
    int16_t i16temperature[BMS_MAX_TEMPNUM];/*温度校准参数寄存器值*/  
    int16_t i16voltage[BMS_MAX_CELLNUM];/*电压校准参数寄存器值*/		

} stc_cal_parm_t;

/*BMS系统相关参数结构体*/
typedef struct stc_config_parm
{
    uint8_t  u8curSw;/* 小电流信号开关 0x00 关闭，0x01 开启*/
    uint16_t u16curThr;/*放电最小电流阈值*/
    uint16_t u16curTime;/*无电流关机时间 */	

    uint32_t u32designCap;/* 电池包标称容量,单位mAH */
    uint32_t u32fullChgCap;/* 电池包满充容量,单位mAH */	
    uint16_t u16cycleCount;/* 充电次数循环次数 */
    uint16_t u16perChgVol;/* 预充开启电压,单位mV */
    uint8_t  u8afeType;/* AFE类型 */	
    uint8_t  u8invType;/* INV类型 */			
    uint8_t  u8batteryType;/* 电池类型 */

    uint8_t  u8cellS;/* 电池包串联电芯数 */
    uint8_t  u8cellP;/* 电池包并联电芯数 */	
    uint8_t  u8swProtectEn;/* 软件保护使能开关*/
    uint8_t  u8capAutoLearn;/* 容量自学习状态开关*/	
	
		uint16_t u16samplingResistor;/* 采样电阻值*/
		uint16_t u16currRatioCharge;
		uint16_t u16currRatioDisCharge;
		int16_t  i16currZeroOffSetADVal;	

    uint8_t  cdevSn[32];/* BMS设备序列号 */
		
		uint8_t  cfactorySn[20];/* BMS厂商编码*/
		uint8_t  cprojectSn[20];/* BMS项目识别代码*/
		uint8_t  cbatterySn[20];/* BMS电池编码*/	
		uint8_t  ciccidSn[20];/* ICCID编码*/
		uint8_t  cimeiSn[20];/* IMEI编码*/	
		uint8_t  cpasswordSn[30];/* 密码编码*/			
		
    uint8_t  u8chgCabType;/* 充电柜类型 */
    uint8_t  u8commuAddr;/* 通讯地址*/			
    uint16_t  u16forbidChgVol;/* 禁止充电电压*/	
    uint16_t  u16maxChgCur;/* 最大允许充电电流*/	
    uint8_t  u8forbidBalHightTempThr;/* 禁止均衡高温阈值*/
    int8_t  u8forbidBalLowTempThr;/* 禁止均衡低温阈值*/			
    uint16_t  u16fullChgVol;/* 满充保护电压*/
    uint16_t  u16fullChgCur;/* 满充截至电流*/	
    uint16_t  u16fullChgDuration;/* 满充持续时间*/	
		uint32_t  u32modFunc;/* 模块功能配置*/
		uint32_t  u32rank2Func;/* 报警保护功能开关*/		
		uint32_t  u32rank1Func;/* 预警保护功能开关*/	
		uint16_t  u16dispSoc;/* 显示SOC*/	
		uint16_t  u16trueSoc;/* 真实SOC*/	
		uint16_t  u16socInterval;/* SOC修正间隔*/	
		uint8_t  u8soh;/* SOH*/
		uint16_t u16designVol;/* 电池包标称电压 */
    uint32_t u32remainCap;/* 电池包剩余容量,单位mAH */	
    uint32_t u32accChgCap;/* 电池包累积充电容量,单位mAH */	
    uint32_t u32accDsgCap;/* 电池包累积放电容量,单位mAH */			

} stc_config_parm_t;

/* ============= 参数总结构体 ================================== */
#pragma pack(1)
typedef struct stc_parm 
{
    stc_soc_parm_t stcSoc;/* SOC配置参数 */	
    stc_sw_protect_parm_t stcSwProtect;/*BMS软件保护配置参数*/
		stc_hw_protect_parm_t stcHwProtect;/*BMS硬件保护配置参数*/
    stc_cal_parm_t stcCal;/*硬件出厂校准配置参数*/
    stc_config_parm_t stcConfig;/* BMS应用配置参数 */

    uint8_t u8bakByte[5];/*预留5个8位参数*/
    uint16_t u16bakWord[5];/*预留5个16位参数*/
    uint32_t u32bakDWord[5];/*预留5个32位参数*/
    uint16_t u16checkCRC;/* 校验位 */
    uint32_t u32saveTail;/* 保存尾部特征字 */
}stc_parm_t ;
#pragma pack()

//----------------------------------------------------------------------------------------
// @Export global Variables declare in the module
extern stc_parm_t  g_stcParm;

//----------------------------------------------------------------------------------------
// @Export declaration of functions in the module
void srv_parm_readRegRefresh(void);
void srv_parm_writeRegRefresh(void);
void srv_parm_init(void);
void srv_parm_oneKey(void);
bool_t srv_parm_defaultFactory(uint8_t type);
bool_t srv_parm_saveCheck(void);
void srv_parm_changeCheck(void);
#endif

// =======================================================================================
// End of file.
// =======================================================================================
